# coding=utf-8


class Solution(object):

    """
    283. 移动零
    (https://leetcode-cn.com/problems/move-zeroes/description/)

    给定一个数组 nums，编写一个函数将所有 0 移动到数组的末尾，同时保持非零元素的相对顺序。

    示例:

    输入: [0,1,0,3,12]
    输出: [1,3,12,0,0]

    说明:

    必须在原数组上操作，不能拷贝额外的数组。
    尽量减少操作次数。
    """

    def moveZeroes(self, nums):
        """
        :type nums: List[int]
        :rtype: void Do not return anything, modify nums in-place instead.
        """
        cnt_nums, i = len(nums), 0
        for j in range(cnt_nums):
            if nums[i] == 0:
                del nums[i]
                nums.append(0)
            else:
                i += 1
